home *** CD-ROM | disk | FTP | other *** search
/ Family Forum 259 / SOMC Family Forum 259 - Disc 1.iso / Xtras / Behavior Library.cst / 00045_Script_UI Pointer Animate < prev    next >
Text File  |  1997-11-17  |  6KB  |  135 lines

  1. -- Pointer Animate
  2.  
  3.  
  4. -- behavior library version 1.1
  5. -- n state cycling, bounce list used to animate the cursor
  6. -- relies on cast members being contiguous
  7. -- handles StartCursor and EndCursor
  8.  
  9. property RCustomImage, RPointerStyle, RCustomMask
  10. property speed
  11. property enabled  -- if False cursor does not animate
  12. property membermin, membermax
  13. property cycling   -- if not cycling, bouncing
  14. property goingup   -- TRUE if going up through the list,
  15. --                    FALSE if going down
  16. property currentcursor
  17. property numstates
  18.  
  19. property tickcount -- used to keep the clock
  20. property useCustom, startBegin, stopEnd
  21.  
  22. on StartAnimation me
  23.   set the enabled of me = TRUE
  24. end
  25.  
  26. on StopAnimation me
  27.   set the enabled of me = FALSE
  28.   set currentPointer = translate_cursor( me, RpointerStyle, RcustomImage, RcustomMask, useCustom  )
  29.   cursor( currentPointer )
  30.   
  31. end
  32.  
  33.  
  34. on translate_cursor me, setting, image, mask, custom
  35.   if custom then
  36.     set val = [ member image, member mask ]
  37.     return val
  38.   end if
  39.   return setting
  40. end
  41.  
  42.  
  43. on setCursor me, statenum
  44.   if the enabled of me then
  45.     if statenum > the numstates of me then set statenum = the numstates of me
  46.     cursor [ member (statenum + (the number of member (the membermin of me)) - 1) ]
  47.   end if
  48. end
  49.  
  50. on setGoingup me, value
  51.   set the goingup of me to value
  52. end
  53.  
  54. on setCycle me, value
  55.   set the cycling of me to value
  56. end
  57.  
  58. on prepareframe me
  59.   if the ticks > the tickcount of me + the speed of me then
  60.     NextState me
  61.     set the tickcount of me = the ticks
  62.   end if
  63. end
  64.  
  65. on NextState me
  66.   if the enabled of me then
  67.     if the cycling of me then
  68.       if the goingup of me then
  69.         set curr = the currentcursor of me  + 1
  70.         if curr > the numstates of me then 
  71.           set curr = 1
  72.         end if
  73.       else -- going down
  74.         set curr = the currentcursor of me  - 1
  75.         if curr < 1 then set curr = the numstates of me
  76.       end if
  77.       
  78.     else -- bouncing
  79.       if the goingup of me then 
  80.         set curr = the currentcursor of me  + 1
  81.         if curr > the numstates of me then
  82.           set curr = curr - 2
  83.           set the goingup of me = FALSE
  84.         end if
  85.       else   --goingUp == FALSE
  86.         set curr = the currentcursor of me  - 1
  87.         if curr < 1 then
  88.           set curr = 2
  89.           set the goingup of me = TRUE
  90.         end if
  91.       end if
  92.     end if
  93.     
  94.     set the currentcursor of me = curr
  95.     setcursor me, curr
  96.   end if
  97. end
  98.  
  99. ---
  100.  
  101. on BeginSprite me
  102.   set the enabled of me = FALSE
  103.   set the numstates of me = (the number of member the membermax of me) - (the number of member the membermin of me) + 1
  104.   set the tickcount of me = the ticks
  105.   if Cycling = #Repeat then set Cycling = TRUE
  106.   if Cycling = #Reverse then set Cycling = FALSE
  107.   if goingup = true then 
  108.     set goingup= false 
  109.   else set goingup = true 
  110.   
  111.   if startBegin then startAnimation me
  112.   
  113. end
  114.  
  115. on Endsprite me
  116.   if stopEnd then
  117.     set currentPointer = translate_cursor( me, RpointerStyle, RcustomImage, RcustomMask, useCustom  )
  118.     cursor( currentPointer )
  119.   end if
  120.   
  121. end
  122.  
  123. on getPropertyDescriptionList
  124.   
  125.   set p_list = [   #startBegin:[ #comment:      "Start Animation on beginSprite:",                     #format:   #boolean,                    #default:    FALSE ],        #stopEnd: [ #comment:   "Restore Cursor on endSprite:",                     #format:   #boolean,                    #default:    TRUE ],   #MemberMin: [ #comment:      "First Image:",                     #format:   #bitmap,                    #default:    member 1 ],      #MemberMax: [ #comment:   "Last Image:",                     #format:   #bitmap,                    #default:    member 1 ],          #Speed: [ #comment:   "Step Rate:",                     #format:   #integer,                    #default:    10 ],        #Cycling: [ #comment:   "Cycle Mode:",                     #format:   #symbol,                      #range: [ #Repeat, #Reverse ],                    #default:   #Repeat ],        #Goingup: [ #comment:   "Reverse Order:",                     #format:   #boolean,                    #default:    FALSE ],    #RpointerStyle: [ #comment: "Restored Pointer Image:",                     #format:   #cursor, #default:0],        #useCustom: [ #comment: "Restore Custom Pointer:",                     #format:   #boolean,                    #default:    FALSE ],   #RcustomImage: [ #comment:   "Restored Custom Image:",                     #format:   #bitmap,                    #default:    member 1 ],     #RcustomMask: [ #comment:   "Restored Custom Mask:",                     #format:   #bitmap,                    #default:    member 1 ]  ]
  126.   return p_list    
  127.   return description
  128. end
  129.  
  130. on getBehaviorDescription
  131.   return "Animates the pointer image using a series of adjacent 1-bit bitmapped cast members.  Drag to any sprite or place in the sript channel." & RETURN & "PARAMETERS:" & RETURN & "ò Start on BeginSprite - Turn this option on to start animation when the sprite begins."  & RETURN & "ò Restore - Turn this option to restore the pointer when the sprite ends."  & RETURN & "ò First Image - Choose the first cast member in the animation sequence."  & RETURN & "ò Last Image  - Choose the last cast member in the animation sequence."  & RETURN & "ò Initial Image - Choose the cast member that should be visible when the animation begins."  & RETURN & "ò Step Rate - Enter the rate, in ticks ( 1/60 second units ) at which the pointer image should change during animation."  & RETURN & "ò Cycle Mode - Choose Repeat to show the same sequence every time.  Choose Reverse to alternate between playing the sequence forward and backward." & RETURN & "ò Reverse Order - Turn this option on to proceed from the last to first image by default."  & RETURN & "ò Restored Pointer - Choose one of Director's included pointers to be displayed when the sprite ends."  & RETURN & "ò Use Custom Pointer - Turn this option on to use a cast member instead of an included pointer as the restored pointer image."  & RETURN & "ò Restored Custom Image  - ( optional ) Choose which cast member to use as the restored pointer image."  & RETURN & "ò Restored Custom Mask - ( optional ) Choose a cast member to use as a mask image when sprite ends.  "& RETURN & "MESSAGES:" & RETURN & "ò StartAnimation - Begin the pointer animation."  & RETURN & "ò StopAnimation - End the pointer animation."
  132. end
  133.  
  134.  
  135.